import {
  IsNotEmpty,
  MinLength,
  MaxLength,
  Matches,
  IsEmail,
  IsString,
} from 'class-validator';

export class RegisterUserDto {
  @IsNotEmpty({ message: '用户名不能为空' })
  @IsString({ message: '用户名必须是字符串' })
  username: string;

  @IsNotEmpty({ message: '密码不能为空' })
  @MinLength(6, { message: '密码最少 6 位' })
  @MaxLength(20, { message: '密码最多 20 位' })
  @Matches(/^[a-zA-Z0-9]+$/, { message: '密码只能包含字母和数字' })
  password: string;

  @IsNotEmpty({ message: '确认密码不能为空' })
  @MinLength(6, { message: '确认密码最少 6 位' })
  @MaxLength(20, { message: '确认密码最多 20 位' })
  @Matches(/^[a-zA-Z0-9]+$/, { message: '确认密码只能包含字母和数字' })
  confirmPassword: string;

  @IsNotEmpty({ message: '邮箱不能为空' })
  @IsEmail({}, { message: '邮箱格式错误' })
  @IsString({ message: '邮箱必须是字符串' })
  email: string;

  @IsNotEmpty({ message: '验证码不能为空' })
  code: string;
}
